package com.sojson.config.interceptor.interfaces;

import java.util.HashMap;

import com.sojson.base.BaseInterceptor;
import com.sojson.constant.Constant;
import com.sojson.util.text.Convert;

/**
 * 签名校验拦截器接口
 * 
 * @author liu
 * @date 2020-11-02
 */
public interface SignatureVerificationInterceptorInterface extends BaseInterceptor {

    /** 要解密的签名名称 */
    String SIGNATURE_NAME = "signature";
    /** 系统要求的所有签名的值 */
    HashMap<String, Object> SIGNATURE_VALUE = initSignature();
    /** 时间戳签名 */
    String SIGNATURE_DATE = "date";
    /** 时间戳允许的范围(单位毫秒) */
    long SIGNATURE_DATE_SCOPE = 1000 * 60 * 30;

    /** 不校验 */
    int SIGNATURE_NO = 1;
    /** 校验 */
    int SIGNATURE = 2;
    /** 解密校验校验 */
    int SIGNATURE_DECRYPTION = 3;
    /** 带key的解密校验 */
    int SIGNATURE_KEY_DECRYPTION = 4;
    /** 解密签名的密钥(不写为没有密钥) */
    String SIGNATURE_KEY = Convert.toStr(Constant.PROPERTIES.getProperty("so.application.filter.signature.key"), null);

    /**
     * 初始化签名
     * 
     * @return
     */
    static HashMap<String, Object> initSignature() {
        // TODO
        HashMap<String, Object> hashMap = new HashMap<>(5);
        hashMap.put("key", "true");
        return hashMap;
    }

}